package com.ruoyi.production.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 工单管理对象 erp_work_order
 * 
 * @author ruoyi
 * @date 2025-07-17
 */
public class ErpWorkOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 工单ID，主键 */
    private Long orderId;

    /** 产品编号 */
    @Excel(name = "产品编号")
    private Long productId;

    /** 销售订单号 */
    @Excel(name = "销售订单号")
    private String salesOrder;

    /** 上传状态 */
    @Excel(name = "上传状态")
    private String uploadStatus;

    /** 物料编码，外键关联erp_material表 */
    @Excel(name = "物料编码，外键关联erp_material表")
    private Long materialId;

    /** 工单数量 */
    @Excel(name = "工单数量")
    private BigDecimal orderQuantity;

    /** 已完成数量 */
    @Excel(name = "已完成数量")
    private BigDecimal completedQuantity;

    /** 计划开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date plannedStartDate;

    /** 计划完成日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划完成日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date plannedFinishDate;

    /** 备注信息 */
    @Excel(name = "备注信息")
    private String remarks;

    /** 物料名称 */
    @Excel(name = "物料名称")
    private String materialName;

    /** 入库数量 */
    @Excel(name = "入库数量")
    private BigDecimal inboundQuantity;

    /** 未入库数量 */
    @Excel(name = "未入库数量")
    private BigDecimal remainingQuantity;

    /** 计划完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date plannedFinishTime;

    /** 计划开工时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划开工时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date plannedStartTime;

    /** 创建人 */
    @Excel(name = "创建人")
    private String creator;

    /** 最后修改人 */
    @Excel(name = "最后修改人")
    private String lastModifier;

    /** 最后修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastModifyTime;

    public void setOrderId(Long orderId) 
    {
        this.orderId = orderId;
    }

    public Long getOrderId() 
    {
        return orderId;
    }

    public void setProductId(Long productId) 
    {
        this.productId = productId;
    }

    public Long getProductId() 
    {
        return productId;
    }

    public void setSalesOrder(String salesOrder) 
    {
        this.salesOrder = salesOrder;
    }

    public String getSalesOrder() 
    {
        return salesOrder;
    }

    public void setUploadStatus(String uploadStatus) 
    {
        this.uploadStatus = uploadStatus;
    }

    public String getUploadStatus() 
    {
        return uploadStatus;
    }

    public void setMaterialId(Long materialId) 
    {
        this.materialId = materialId;
    }

    public Long getMaterialId() 
    {
        return materialId;
    }

    public void setOrderQuantity(BigDecimal orderQuantity) 
    {
        this.orderQuantity = orderQuantity;
    }

    public BigDecimal getOrderQuantity() 
    {
        return orderQuantity;
    }

    public void setCompletedQuantity(BigDecimal completedQuantity) 
    {
        this.completedQuantity = completedQuantity;
    }

    public BigDecimal getCompletedQuantity() 
    {
        return completedQuantity;
    }

    public void setPlannedStartDate(Date plannedStartDate) 
    {
        this.plannedStartDate = plannedStartDate;
    }

    public Date getPlannedStartDate() 
    {
        return plannedStartDate;
    }

    public void setPlannedFinishDate(Date plannedFinishDate) 
    {
        this.plannedFinishDate = plannedFinishDate;
    }

    public Date getPlannedFinishDate() 
    {
        return plannedFinishDate;
    }

    public void setRemarks(String remarks) 
    {
        this.remarks = remarks;
    }

    public String getRemarks() 
    {
        return remarks;
    }

    public void setMaterialName(String materialName) 
    {
        this.materialName = materialName;
    }

    public String getMaterialName() 
    {
        return materialName;
    }

    public void setInboundQuantity(BigDecimal inboundQuantity) 
    {
        this.inboundQuantity = inboundQuantity;
    }

    public BigDecimal getInboundQuantity() 
    {
        return inboundQuantity;
    }

    public void setRemainingQuantity(BigDecimal remainingQuantity) 
    {
        this.remainingQuantity = remainingQuantity;
    }

    public BigDecimal getRemainingQuantity() 
    {
        return remainingQuantity;
    }

    public void setPlannedFinishTime(Date plannedFinishTime) 
    {
        this.plannedFinishTime = plannedFinishTime;
    }

    public Date getPlannedFinishTime() 
    {
        return plannedFinishTime;
    }

    public void setPlannedStartTime(Date plannedStartTime) 
    {
        this.plannedStartTime = plannedStartTime;
    }

    public Date getPlannedStartTime() 
    {
        return plannedStartTime;
    }

    public void setCreator(String creator) 
    {
        this.creator = creator;
    }

    public String getCreator() 
    {
        return creator;
    }

    public void setLastModifier(String lastModifier) 
    {
        this.lastModifier = lastModifier;
    }

    public String getLastModifier() 
    {
        return lastModifier;
    }

    public void setLastModifyTime(Date lastModifyTime) 
    {
        this.lastModifyTime = lastModifyTime;
    }

    public Date getLastModifyTime() 
    {
        return lastModifyTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("orderId", getOrderId())
            .append("productId", getProductId())
            .append("salesOrder", getSalesOrder())
            .append("uploadStatus", getUploadStatus())
            .append("materialId", getMaterialId())
            .append("orderQuantity", getOrderQuantity())
            .append("completedQuantity", getCompletedQuantity())
            .append("plannedStartDate", getPlannedStartDate())
            .append("plannedFinishDate", getPlannedFinishDate())
            .append("remarks", getRemarks())
            .append("materialName", getMaterialName())
            .append("inboundQuantity", getInboundQuantity())
            .append("remainingQuantity", getRemainingQuantity())
            .append("plannedFinishTime", getPlannedFinishTime())
            .append("plannedStartTime", getPlannedStartTime())
            .append("creator", getCreator())
            .append("lastModifier", getLastModifier())
            .append("lastModifyTime", getLastModifyTime())
            .toString();
    }
}
